The Internet comprises a vast number of computers interconnected so that information can be exchanged among the computers. Various protocol and other interface standards have been developed for the Internet so that each computer will understand information of the other computers. The World-Wide Web (“WWW”) is a subset of the Internet computers that support the Hypertext Transfer Protocol (“HTTP”). HTTP is an application-level protocol for distributed, collaborative, hyper-media information systems that defines the format and contents of messages and responses sent between client programs (“clients”) and server programs (“servers”) over the Internet. In addition, HTTP is a generic, stateless, object-oriented protocol which can be used for many other tasks, such as name servers and distributed object management systems, through various extensions.
The Internet facilitates information exchange between servers and clients that are located throughout the world. Each computer on the Internet has a unique address (e.g., “acme.com”). When a client wishes to access a resource (e.g., document), the client specifies a Uniform Resource Identifier (“URI”) that uniquely identifies the computer on which the server executes and the resource. Types of URIs include a Uniform Resource Locator (“URL”) or and Uniform Resource Name (“URN”). An example of a URL is “http://acme.com/page1.” In this example the server is identified by “acme.com” and the resource is identified by “page1.”
The “http” at the beginning of the example URL is the scheme and indicates that the remainder of the URL should be interpreted according to HTTP. The remainder specifies a server computer (e.g., “acme.com”) followed by additional information that is specific to the server. For example, the additional information may be a path name within the server computer to a Hypertext Markup Language (“HTML”) document.
One type of computing device that may access URIs is an “Advanced Content” device. In general, advanced content media devices allow advanced content interactivity, especially for high-definition content, e.g., Silverlight or BD-J content. “Advanced Content” refers to an interactivity layer that was originally described by the DVD Forum for applicability to a next generation high definition DVD (digital versatile disc) format called “HD-DVD”. Many features of Advanced Content are currently being implemented by Microsoft Corporation's HDi technology which enables advanced viewing features including enhanced content, interactive user experiences, navigation, and other functionality to be rendered in real-time as the AV content (such as a movie or other content) plays. HDi uses standards including XML (eXtensible Markup Language), HTML (Hypertext Markup Language), CSS (Cascading Style Sheets), SMIL (Synchronized Media Integration Language), and ECMAScript (also known as JavaScipt).
Advanced content, generally stored on advanced media, represents one or more sequences (generally, time-ordered) of video, audio, images, text, and/or graphics presentable to users as media content streams. More than one independently-controlled media content stream may be concurrently presented (for example, a main movie along with features such as a director's commentary, actor biographies, or advertising). The content may include interactive objects, where examples of interactive objects include, among other things, video samples or clips, audio samples or clips, images, graphics, text, and combinations thereof. These interactive objects may be under the control of a sophisticated software program, providing complex control of the interactivity. A sequence may generally also include the accessing of network resources such as images.
Two methods are generally employed for accessing network resources. A first is “scheduled downloading”. Scheduled downloading requires the exact location of the resource to be known at the time that the sequence is created. However, scheduled downloading provides for automatic resource management, which is the deletion of resources after the same are no longer needed. A second method is “API downloading”. In API downloading, the location of the resource may be specified at runtime, rather than at the time the sequence is created. However, API downloading does not provide any automated form of resource management. In other words, resources are not automatically or pro-actively deleted, since the system has no knowledge and makes no assumptions of how and for how long the resource will be used. This aspect may be particular constraining on space-limited computing devices, such as mobile phones.